function noisy_signal = add_awgn_noise(signal, snr_dB)
% add_awgn_noise - 为信号添加加性高斯白噪声(AWGN)
%
% 输入参数:
%   signal  - 输入信号
%   snr_dB  - 信噪比(dB)
%
% 输出参数:
%   noisy_signal - 添加噪声后的信号

% 计算信号功率
signal_power = mean(abs(signal).^2);

% 将SNR从dB转换为线性比例
snr_linear = 10^(snr_dB/10);

% 计算噪声功率
noise_power = signal_power / snr_linear;

% 生成噪声
noise = sqrt(noise_power/2) * (randn(size(signal)) + 1i*randn(size(signal)));

% 添加噪声到信号
% 由于我们的信号是实数（上变频后），我们只取噪声的实部
noisy_signal = signal + real(noise);

end 